/***********************百度地图API功能****************************/
var map = new BMap.Map("allmap"); // 创建Map实例
map.centerAndZoom(new BMap.Point(116.404, 39.915), 5); // 初始化地图,设置中心点坐标和地图级别
//添加地图类型控件
map.addControl(
  new BMap.MapTypeControl({
    mapTypes: [BMAP_NORMAL_MAP, BMAP_HYBRID_MAP],
  })
);

map.setCurrentCity("宁德"); // 设置地图显示的城市 此项是必须设置的
map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放

var LogName = sessionStorage.getItem("SaveLogName");
var token = sessionStorage.getItem("newtoken");
//创建一维数组
var markers = [];
var markersl = [];
var pt = null;

/***********获取站点坐标**************/
function getStationMap() {
  $.ajax({
    url:
      "/oms-web/users/getStationByName?token=" + token + "&userName=" + LogName,
    dataType: "json",
    contentType: "application/json",
    success: function (data) {
      if (data.code == -1) {
        window.location = "../page/login-1.html";
      }
      if (data.code === 0) {
        //  随机向地图添加点
        for (let l = 0; l < data.data.length; l++) {
          if (data.data[l].latitude != "" && data.data[l].longitude != "") {
            pt = new BMap.Point(data.data[l].longitude, data.data[l].latitude);
            var code = data.data[l].code;
            var text = data.data[l].text;
            var maker = new BMap.Marker(pt);
            markers.push(maker);
            markersl.push(pt);
            // 添加点击事件
            addClickHandler(maker, code, text, pt);
          }
        }

        //  让所有点在视野范围内
        map.setViewport(markersl);
        //  聚合
        new BMapLib.MarkerClusterer(map, { markers: markers });
      }
    },
    error: function () {
      // layer.msg("数据请求错误,请检查时间格式！");
    },
  });
}
getStationMap();

/************************************ */

function getStationInfor(pt, code, text) {
  sessionStorage.setItem("HSvaeMap", "888");
  sessionStorage.setItem("HSvaeMapCode", code);
  sessionStorage.setItem("HSvaeMapText", text);
  $.ajax({
    url:
      "/oms-web/stations/getStationInfo?token=" +
      token +
      "&stationCode=" +
      code,
    dataType: "json",
    contentType: "application/json",
    success: function (data) {
      if (data.code == -1) {
        window.location = "../page/login-1.html";
      }
      if (data.code === 0) {
        var opts = {
          // width: 100, // 信息窗口宽度
          // height: 200, // 信息窗口高度
          title: "<h3>" + data.data.text + "</h3>", // 信息窗口标题
          enableMessage: true, //设置允许信息窗发送短息
        };

        // 随机向地图添加点
        var info_c = "";
        info_c +=
          '<div style="position:relative;top: 8px; margin:0;line-height:20px;padding:2px;">' +
          '电池状态：  <span class="layui-badge-dot layui-bg-green"></span>' +
          data.data.norBat +
          '&nbsp &nbsp<span class="layui-badge-dot"></span>' +
          data.data.abnorBat +
          '<br/>数据状态： <span class="layui-badge-dot layui-bg-green"></span>' +
          data.data.norData +
          '&nbsp &nbsp<span class="layui-badge-dot"></span>' +
          data.data.abnorData +
          '<br/>当日站告警： <span class="layui-badge-dot"></span>' +
          data.data.evts +
          "" +
          '<br/>设备状态：  <span class="layui-badge-dot layui-bg-green"></span>' +
          data.data.onTermNum +
          '&nbsp &nbsp<span class="layui-badge-dot"></span>' +
          data.data.offTermNum +
          "" +
          '<br/><a id="btn_detail" style="position: relative;left: 83%;top: -1px;color: darkcyan;font-size: 12px;"><i class="fa fa-gears"></i><cite>详情</cite></a>';
        ("</div>");

        var infoWindow = new BMap.InfoWindow(info_c, opts); // 创建信息窗口对象
        map.openInfoWindow(infoWindow, pt); //开启信息窗口
        setTimeout(() => {
          document.getElementById("btn_detail").onclick = function () {
            $("#lopp").click();
            infoWindow.close();
          };
        }, 100);
      }
    },
    error: function () {
      // layer.msg("数据请求错误,请检查时间格式！");
    },
  });
}

//添加事件
function addClickHandler(marker, code, text, pt) {
  marker.addEventListener("click", function (e) {
    getStationInfor(pt, code, text);
  });
}
